/**************************************************************************
 * @file usr_adc_handle.h
 * @author BryanHe(贺璧) (532352406@qq.com)
 * @brief 
 * @version 0.1
 * @date 2024-11-11
 * 
 * @copyright Copyright (c) 2024
 * 
 *************************************************************************/
#ifndef USR_ADC_HANDLE__H_H
#define USR_ADC_HANDLE__H_H
#include<stdint.h>
#include<stdio.h>

#ifdef __cplusplus
extern "C"{
#endif


#include "usr_app_common_inc.h"

#define ADC_VREF                         (3.3)
#define ADC_TEMP_BASE                    (1.26)
#define ADC_TEMP_SLOPE                   (-0.00423)

#define GET_MCU_TEMP(adc_value) ((ADC_TEMP_BASE - (double)adc_value * ADC_VREF / 4096ul) / ADC_TEMP_SLOPE + 25)

#define MCU_ADC_CYCLE_BUF_SIZE 10

typedef struct cycle_buf_dat_t_{
    uint16_t mcu_adc_cycle_buf[MCU_ADC_CYCLE_BUF_SIZE];
    mo_u8 start_index;
    mo_u8 active_dats;

}cycle_buf_dat_t;

int get_mcu_temp(int *tmp_buf);
void mcu_temperature_adc_init(void);
void mcu_temperature_handle(void);
int get_mcu_temp_str_by_tmp_value(int tmp,mo_u8 str_len,mo_u8 *str_buf);
int get_mcu_temp_value(void);


#ifdef __cplusplus
}
#endif

#endif //USR_ADC_HANDLE__H_H




